diff --git a/board/esd/plu405/plu405.c b/board/esd/plu405/plu405.c
index 04f386f..e3eff31 100644
--- a/board/esd/plu405/plu405.c
+++ b/board/esd/plu405/plu405.c
@@ -26,13 +26,13 @@
 #include <command.h>
 #include <malloc.h>
 
-/* ------------------------------------------------------------------------- */
 
 #if 0
 #define FPGA_DEBUG
 #endif
 
 extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+extern void lxt971_no_sleep(void);
 
 /* fpga configuration data - gzip compressed and generated by bin2c */
 const unsigned char fpgadata[] =
@@ -46,6 +46,23 @@
 #include "../common/fpga.c"
 
 
+/*
+ * include common auto-update code (for esd boards)
+ */
+#include "../common/auto_update.h"
+
+au_image_t au_image[] = {
+	{"plu405/preinst.img", 0, -1, AU_SCRIPT},
+	{"plu405/u-boot.img", 0xfffc0000, 0x00040000, AU_FIRMWARE},
+	{"plu405/pImage_$(bd_type)", 0x00000000, 0x00100000, AU_NAND},
+	{"plu405/pImage.initrd", 0x00100000, 0x00200000, AU_NAND},
+	{"plu405/yaffsmt2.img", 0x00300000, 0x01c00000, AU_NAND},
+	{"plu405/postinst.img", 0, 0, AU_SCRIPT},
+};
+
+int N_AU_IMAGES = (sizeof(au_image) / sizeof(au_image[0]));
+
+
 /* Prototypes */
 int gunzip(void *, int, unsigned char *, unsigned long *);
 
@@ -81,8 +98,6 @@
 }
 
 
-/* ------------------------------------------------------------------------- */
-
 int misc_init_f (void)
 {
 	return 0;  /* dummy implementation */
@@ -99,7 +114,6 @@
 	int index;
 	int i;
 
-#if 1 /* test-only */
 	dst = malloc(CFG_FPGA_MAX_SIZE);
 	if (gunzip (dst, CFG_FPGA_MAX_SIZE, (uchar *)fpgadata, &len) != 0) {
 		printf ("GUNZIP ERROR - must RESET board to recover\n");
@@ -179,7 +193,6 @@
 	 */
 	*duart0_mcr = 0x08;
 	*duart1_mcr = 0x08;
-#endif
 
 	return (0);
 }
@@ -188,7 +201,6 @@
 /*
  * Check Board Identity:
  */
-
 int checkboard (void)
 {
 	unsigned char str[64];
@@ -204,10 +216,14 @@
 
 	putc ('\n');
 
+	/*
+	 * Disable sleep mode in LXT971
+	 */
+	lxt971_no_sleep();
+
 	return 0;
 }
 
-/* ------------------------------------------------------------------------- */
 
 long int initdram (int board_type)
 {
@@ -224,7 +240,6 @@
 	return (4*1024*1024 << ((val & 0x000e0000) >> 17));
 }
 
-/* ------------------------------------------------------------------------- */
 
 int testdram (void)
 {
@@ -234,7 +249,6 @@
 	return (0);
 }
 
-/* ------------------------------------------------------------------------- */
 
 #ifdef CONFIG_IDE_RESET
 void ide_set_reset(int on)
@@ -266,3 +280,15 @@
 	}
 }
 #endif
+
+
+#ifdef CONFIG_AUTO_UPDATE_SHOW
+void board_auto_update_show(int au_active)
+{
+	if (au_active) {
+		printf("\n Dies ist die board-funktion: Updating!!!\n");
+	} else {
+		printf("\n Dies ist die board-funktion: Updating done!!!\n");
+	}
+}
+#endif
